虽然这是2017年8月19日的文章,但这是20190524才上传的,以后估计也会不断更新,也许不会更新,这可能取决于我以后对windbg用得更加6吧
windbg 调试笔记
符号
srv*c:\symbols*http://msdl.microsoft.com/download/symbols
显示加载的模块
lm
加载符号
ln *
程序入口伪寄存器
WinDbg里有个伪寄存器叫$exentry,里面记录了程序的入口点。所以我们只要在命令输入栏里输入
bp $exentry
查看内存
dd 查看内存
dc 可以看到数据
db 以byte查看
dt 查看数据结构
修改内存
eb/ew/ed/eq/ef/ep Address [Values]
字节/字/双字/四字/浮点数/指针/
ea/eu/eza/ezu Address [Values]
ASCII字符串/Unicode字符串/以NULL结尾的ASCII字符串/以NULL结尾的Unicode字符串
搜索内存
s -[b/w/d/q/a/u] Range Target
搜索字节/字/双字/四字/ASCII字符串/Unicode字符串
断点
- bp 下断点
- bl 列断点
- bc 清除断点
- bd 禁用断点
下内存断点
ba r4/w4/e4 xxxxxxx
条件断点
“.if(poi(xxx) == 0x0000xxx){}.else{gc}”
模块加载时下断
sxe ld:ntdll
查看SEH链
!exchain
或者
dt ntdll!_EXCEPTION_REGISTRATION_RECORD -l next poi(ExceptionList的首指针)
其他
~* 列出线程数
.childdbg 1 开启子进程调试